//package com.example.job;
//
//import com.example.decider.MyDecider;
//import org.springframework.batch.core.ExitStatus;
//import org.springframework.batch.core.Job;
//import org.springframework.batch.core.Step;
//import org.springframework.batch.core.configuration.annotation.JobBuilderFactory;
//import org.springframework.batch.core.configuration.annotation.StepBuilderFactory;
//import org.springframework.batch.repeat.RepeatStatus;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.context.annotation.Bean;
//import org.springframework.stereotype.Component;
//
///**
// * 使用决策器的job
// * @author yh
// * @date 2022/9/26
// */
//@Component
//public class DeciderJobDemo {
//
//    @Autowired
//    private JobBuilderFactory jobBuilderFactory;
//    @Autowired
//    private StepBuilderFactory stepBuilderFactory;
//    @Autowired
//    private MyDecider myDecider;
//
//    @Bean
//    public Job deciderJob() {
//        return jobBuilderFactory.get("deciderJob2")
//                // 首先执行step1
//                .start(step1())
//                // 指定自定义决策器
//                .next(myDecider)
//                // 周末执行step2
//                .from(myDecider).on("weekend").to(step2())
//                // 工作日执行step3
//                .from(myDecider).on("workingDay").to(step3())
//                // 如果执行了step3，将执行step4
//                .from(step3()).on("*").to(step4())
//                .end()
//                .build();
//    }
//
//    private Step step1() {
//        return stepBuilderFactory.get("step1")
//                .tasklet((stepContribution, chunkContext) -> {
//                    System.out.println("执行步骤一操作。。。");
//                    return RepeatStatus.FINISHED;
//                }).build();
//    }
//
//    private Step step2() {
//        return stepBuilderFactory.get("step2")
//                .tasklet((stepContribution, chunkContext) -> {
//                    System.out.println("执行步骤二操作。。。");
//                    return RepeatStatus.FINISHED;
//                }).build();
//    }
//
//    private Step step3() {
//        return stepBuilderFactory.get("step3")
//                .tasklet((stepContribution, chunkContext) -> {
//                    System.out.println("执行步骤三操作。。。");
//                    return RepeatStatus.FINISHED;
//                }).build();
//    }
//
//
//    private Step step4() {
//        return stepBuilderFactory.get("step4")
//                .tasklet((stepContribution, chunkContext) -> {
//                    System.out.println("执行步骤四操作。。。");
//                    return RepeatStatus.FINISHED;
//                }).build();
//    }
//}